package br.com.sms.facade;

import java.util.Date;
import java.util.List;

import br.com.sms.dao.ClienteDAO;
import br.com.sms.dominio.Cidade;
import br.com.sms.dominio.Cliente;
import br.com.sms.dto.ClienteDTO;
import br.com.sms.enuns.Situacao;

public class ClienteFacade {

	private ClienteDAO dao;
	
	public ClienteFacade(){
		this.dao = new ClienteDAO();
	}
	
	public Cliente salvar(ClienteDTO clienteDTO) {
		Cliente cliente = clienteDTO.getCliente();
		
		cliente.setDataContrato(new Date());
		cliente.setSituacao(Situacao.ATIVO);
		
		Cidade cidade = new Cidade(clienteDTO.getCidade(), clienteDTO.getUf());
		
		cliente.setCidade(cidade);
		
		return dao.salvar(cliente);
	}

	public Cliente salvar(Cliente cliente) {
		cliente.setSituacao(Situacao.ATIVO);
		cliente.setDataContrato(new Date());
		
		return dao.salvar(cliente);
	}
	
	public List<Cliente> pesquisar(ClienteDTO clienteDTO) {
		Cliente cliente = clienteDTO.getCliente();	
		
		Cidade cidade = new Cidade(clienteDTO.getCidade(), clienteDTO.getUf());
		cliente.setCidade(cidade);
		
		CidadeFacade cidadeFacade = new CidadeFacade();
		Cidade cidadeRecuperada = cidadeFacade.recuperarCidadePorNome(cidade);
		
		if(cidadeRecuperada != null){
			cliente.setCidade(cidadeRecuperada);
		}
		
		return dao.pesquisar(cliente);
	}

	public void excluir(Cliente cliente) {
		dao.excluir(cliente);
	}

	public Cliente recuperarCliente(int id) {
		return dao.recuperarCliente(id);
	}

	public List<Cliente> recuperarTodos() {
		return dao.recuperarTodos();
	}

}
